const { resolve } = require('path') // 引入路径模块
const r = path => resolve(__dirname, '..', path) // 封装路径解析方法
module.exports = {
  // 开发环境配置
  dev: {
    env: require('./dev.env'),
    port: 3001, // 开发时的端口
    autoOpenBrowser: true,
    assetsRoot: r('static/'), // 资源生成目录
    assetsPublicPath: '/', // 资源访问路径，前面必须带
    proxyTable: {
      // '/api': {
      //   target: '', // 要代理的api域名
      //   changeOrigin: true, // needed for virtual hosted sites
      //   pathRewrite: {
      //     '^/api': ''
      //   }
      // }
    },
    cssSourceMap: true
  },
  // 生产环境配置
  pro: {
    env: require('./pro.env'),
    port: 3000, // 产品环境端口
    assetsRoot: r('static'), // 资源生成目录
    assetsPublicPath: '/', // 静态资源生成目录
    productionSourceMap: false, // 生产环境下取消sourceMap
    chunkhash: 'chunkhash:6', // 生产环境下hash指纹
    // Run the build command with an extra argument to
    // View the bundle analyzer report after build finishes:
    // `npm run build --report` 追加参数--report可查看打包报告
    // Set to `true` or `false` to always turn it on or off
    bundleAnalyzerReport: process.env.npm_config_report
  },

  // 服务器相关配置
  host: process.env.HOST || '127.0.0.1', // 域名配置
  theme: 'default', // 模板配置
  entry: 'src/static/js/**/entry.*.js',

  // 数据库连接相关配置
  db: {
    user: 'sa',
    port: '1433',
    server: '127.0.0.1', // 服务器数据库连接IP
    password: '********', // 数据库连接密码
    pool: {
      max: 10,
      min: 0,
      idleTimeoutMillis: 30000
    }
  },
  // 中间件引入配置，请注意顺序
  middleware: [
    // 'cache', // 基础-缓存处理
    'index', // 基础-公用
    'template', // 基础-模板引擎
    'state', // 基础-状态上挂载code配置
    'asset', // 基础-静态资源josn map
    '301', // 基础-301跳转网页带/
    'router', // 基础-路由
    'proxy', // 基础-代理请求中间件
    // 'jsonp' // 封装api请求jsonp
    'error' // 基础-错误处理
  ],
  seo: {
    title: `这是网站标题`,
    keywords: `这是网站关键字`,
    description: `这是网站描述`
  }
}
